﻿@{
    ViewBag.Title = "Ext 测试";
    Layout = "~/Views/Shared/_Layout.cshtml";
}
@section head{
    <script type="text/javascript">
        Ext.onReady(function () {
            Ext.QuickTips.init();

            // sample static data for the store
            var myData = [
        ['3m Co', 71.72, 0.02, 0.03, '9/1 12:00am'],
        ['Alcoa Inc', 29.01, 0.42, 1.47, '9/1 12:00am'],
        ['Altria Group Inc', 83.81, 0.28, 0.34, '9/1 12:00am'],
        ['American Express Company', 52.55, 0.01, 0.02, '9/1 12:00am'],
        ['American International Group, Inc.', 64.13, 0.31, 0.49, '9/1 12:00am'],
        ['AT&T Inc.', 31.61, -0.48, -1.54, '9/1 12:00am'],
        ['Boeing Co.', 75.43, 0.53, 0.71, '9/1 12:00am'],
        ['Caterpillar Inc.', 67.27, 0.92, 1.39, '9/1 12:00am'],
        ['Citigroup, Inc.', 49.37, 0.02, 0.04, '9/1 12:00am'],
        ['E.I. du Pont de Nemours and Company', 40.48, 0.51, 1.28, '9/1 12:00am'],
        ['Exxon Mobil Corp', 68.1, -0.43, -0.64, '9/1 12:00am'],
        ['General Electric Company', 34.14, -0.08, -0.23, '9/1 12:00am'],
        ['General Motors Corporation', 30.27, 1.09, 3.74, '9/1 12:00am'],
        ['Hewlett-Packard Co.', 36.53, -0.03, -0.08, '9/1 12:00am'],
        ['Honeywell Intl Inc', 38.77, 0.05, 0.13, '9/1 12:00am'],
        ['Intel Corporation', 19.88, 0.31, 1.58, '9/1 12:00am'],
        ['International Business Machines', 81.41, 0.44, 0.54, '9/1 12:00am'],
        ['Johnson & Johnson', 64.72, 0.06, 0.09, '9/1 12:00am'],
        ['JP Morgan & Chase & Co', 45.73, 0.07, 0.15, '9/1 12:00am'],
        ['McDonald\'s Corporation', 36.76, 0.86, 2.40, '9/1 12:00am'],
        ['Merck & Co., Inc.', 40.96, 0.41, 1.01, '9/1 12:00am'],
        ['Microsoft Corporation', 25.84, 0.14, 0.54, '9/1 12:00am'],
        ['Pfizer Inc', 27.96, 0.4, 1.45, '9/1 12:00am'],
        ['The Coca-Cola Company', 45.07, 0.26, 0.58, '9/1 12:00am'],
        ['The Home Depot, Inc.', 34.64, 0.35, 1.02, '9/1 12:00am'],
        ['The Procter & Gamble Company', 61.91, 0.01, 0.02, '9/1 12:00am'],
        ['United Technologies Corporation', 63.26, 0.55, 0.88, '9/1 12:00am'],
        ['Verizon Communications', 35.57, 0.39, 1.11, '9/1 12:00am'],
        ['Wal-Mart Stores, Inc.', 45.45, 0.73, 1.63, '9/1 12:00am']
    ];

            function change(val) {
                if (val > 0) {
                    return '<span style="color:green;">' + val + '</span>';
                } else if (val < 0) {
                    return '<span style="color:red;">' + val + '</span>';
                }
                return val;
            }

            function pctChange(val) {
                if (val > 0) {
                    return '<span style="color:green;">' + val + '%</span>';
                } else if (val < 0) {
                    return '<span style="color:red;">' + val + '%</span>';
                }
                return val;
            }

            // create the data store
            var store = Ext.create('Ext.data.ArrayStore', {
                fields: [
                   { name: 'company' },
                   { name: 'price', type: 'float' },
                   { name: 'change', type: 'float' },
                   { name: 'pctChange', type: 'float' },
                   { name: 'lastChange', type: 'date', dateFormat: 'n/j h:ia' }
                ],
                data: myData
            });

            // create the Grid
            var grid = Ext.create('Ext.grid.Panel', {
                store: store,
                sealed: true,
                columnLines: true,
                columns: [{
                    text: 'Company Name',
                    width: 200,
                    sortable: false,
                    locked: true,
                    dataIndex: 'company'
                }, {
                    text: 'Price',
                    width: 125,
                    sortable: true,
                    renderer: 'usMoney',
                    dataIndex: 'price'
                }, {
                    text: 'Change',
                    width: 125,
                    sortable: true,
                    renderer: change,
                    dataIndex: 'change'
                }, {
                    text: '% Change',
                    width: 125,
                    sortable: true,
                    renderer: pctChange,
                    dataIndex: 'pctChange'
                }, {
                    text: 'Last Updated',
                    width: 135,
                    sortable: true,
                    renderer: Ext.util.Format.dateRenderer('m/d/Y'),
                    dataIndex: 'lastChange'
                }],
                height: 350,
                width: 600,
                title: 'Locking Grid Column',
                renderTo: Ext.getBody()
            });
        });
        Ext.onReady(function () {
            //            var p23 = {
            //                layout: 'border',
            //                id: 'ddd',
            //                items: [
            //                    {
            //                        region: 'north',
            //                        height: 100,
            //                        bodyStyle: 'background-color:green'
            //                    }, {
            //                        region: 'center',
            //                        bodyStyle: 'background-color:black'
            //                    }
            //                ]
            //            };

            //            var pp = {
            //                //                height: 500,
            //                //                autoScroll: true,
            //                items: p23,
            //                bodyStyle: 'background-color:red'
            //            };


            //            var pp3 = {
            //                border: 0,
            //                margins:'35 5 5 0',
            //                layout:'column',
            //                autoScroll:true,
            //                items: [{
            //                    columnWidth: 1/3,
            //                    baseCls:'x-plain',
            //                    bodyStyle:'padding:5px 0 5px 5px',
            //                    items:[{
            //                        title: 'A Panel',
            //                        html: 'Ext.example.shortBogusMarkup'
            //                    }]
            //                }, {
            //                    columnWidth: 2 / 3,
            //                    baseCls: 'x-plain',
            //                    bodyStyle: 'padding:5px 0 5px 5px',
            //                    items: [{
            //                        title: 'A Panel',
            //                        html: 'Ext.example.shortBogusMarkup'
            //                    }]
            //                }]
            //            };


            //            var viewport = Ext.widget('viewport', {
            //                layout: 'fit',
            //                items: pp3
            //            });



            //we want to setup a model and store instead of using dataUrl
            Ext.define('Task', {
                extend: 'Ext.data.Model',
                fields: [
                    { name: 'task', type: 'string' },
                    { name: 'user', type: 'string' },
                    { name: 'duration', type: 'string' }
                ],
                proxy: {
                    type: 'ajax',
                    "reader": {
                        "type": "json",
                        "root": "entities"
                    },
                    //the store will get the content from the .json file
                    url: 'ExtTestJS'
                }
            });

            var store = Ext.create('Ext.data.TreeStore', {
                model: 'Task',
                folderSort: true
            });

            //Ext.ux.tree.TreeGrid is no longer a Ux. You can simply use a tree.TreePanel
            var tree = Ext.create('Ext.tree.Panel', {
                title: 'Core Team Projects',
                width: 500,
                height: 300,
                renderTo: Ext.getBody(),
                collapsible: true,
                useArrows: true,
                rootVisible: false,
                store: store,
                multiSelect: true,
                singleExpand: true,
                //the 'columns' property is now 'headers'
                columns: [{
                    xtype: 'treecolumn', //this is so we know which column will show the tree
                    text: 'Task',
                    flex: 2,
                    sortable: true,
                    dataIndex: 'task'
                }, {
                    //we must use the templateheader component so we can use a custom tpl
                    xtype: 'templatecolumn',
                    text: 'Duration',
                    flex: 1,
                    sortable: true,
                    dataIndex: 'duration',
                    align: 'center',
                    //add in the custom tpl for the rows
                    tpl: Ext.create('Ext.XTemplate', '{duration:this.formatHours}', {
                        formatHours: function (v) {
                            if (v < 1) {
                                return Math.round(v * 60) + ' mins';
                            } else if (Math.floor(v) !== v) {
                                var min = v - Math.floor(v);
                                return Math.floor(v) + 'h ' + Math.round(min * 60) + 'm';
                            } else {
                                return v + ' hour' + (v === 1 ? '' : 's');
                            }
                        }
                    })
                }, {
                    text: 'Assigned To',
                    flex: 1,
                    dataIndex: 'user',
                    sortable: true
                }]
            });

            return;


            var meta = {
                "model": "Rafy.Library.BookCategory",
                "label": "书籍类别",
                "gridConfig": {
                    "tbar": [{
                        "command": "Rafy.cmd.Add"
                    }, {
                        "command": "Rafy.cmd.Edit"
                    }, {
                        "command": "Rafy.cmd.Delete"
                    }, {
                        "command": "Rafy.cmd.Save"
                    }, {
                        "command": "Rafy.cmd.Refresh"
                    }],
                    "columns": [{
                        "header": "编码",
                        "editor": {
                            "allowBlank": true,
                            "xtype": "textfield"
                        },
                        "dataIndex": "Code"
                    }, {
                        "header": "名称",
                        "editor": {
                            "allowBlank": true,
                            "xtype": "textfield"
                        },
                        "dataIndex": "Name"
                    }, {
                        "header": "数量",
                        "xtype": "numbercolumn",
                        "editor": {
                            "xtype": "numberfield"
                        },
                        "dataIndex": "Count"
                    }, {
                        "header": "数量2",
                        "xtype": "numbercolumn",
                        "editor": {
                            "xtype": "numberfield"
                        },
                        "dataIndex": "Count2"
                    }]
                },
                "storeConfig": {
                    "pageSize": 25
                }
            };

            var store = Ext.create('Ext.data.TreeStore', {
                model: meta.model
            });

            var tree = Ext.create('Ext.tree.Panel', {
                width: 500,
                height: 300,
                renderTo: Ext.getBody(),
                rootVisible: false,
                store: store,
                columns: [{
                    xtype: 'treecolumn',
                    text: '编程',
                    sortable: true,
                    dataIndex: 'Code'
                }, {
                    text: '名称',
                    sortable: true,
                    dataIndex: 'Name'
                }]
            });

        });
        Ext.onReady(function () {
        });
    </script>
}
